Register Allocation Using Lazy

نویسندگان

  • Robert G. Burger
  • Oscar Waddell
  • R. Kent Dybvig
چکیده

This paper presents a fast and eeective linear intraprocedu-ral register allocation strategy that optimizes register usage across procedure calls. It capitalizes on our observation that while procedures that do not contain calls (syntactic leaf routines) account for under one third of all procedure activations , procedures that actually make no calls (eeective leaf routines) account for over two thirds of all procedure activations. Well-suited for both caller-and callee-save registers , our strategy employs a \lazy" save mechanism that avoids saves for all eeective leaf routines, an \eager" restore mechanism that reduces the eeect of memory latency, and a \greedy" register shuuing algorithm that does a remarkably good job of minimizing the need for temporaries in setting up procedure calls.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Register Allocation Using Lazy Saves ,

This paper presents a fast and eeective linear intraprocedu-ral register allocation strategy that optimizes register usage across procedure calls. It capitalizes on our observation that while procedures that do not contain calls (syntactic leaf routines) account for under one third of all procedure activations , procedures that actually make no calls (eeective leaf routines) account for over tw...

متن کامل

Efficient Compilation and Profile-driven Dynamic Recompilation in Scheme

This dissertation presents a fast and effective linear intraprocedural register allocation strategy and an infrastructure for profile-driven dynamic recompilation in Scheme. The register allocation strategy optimizes register usage across procedure calls. It capitalizes on our observation that while procedures that do not contain calls (syntactic leaf routines) account for under one third of al...

متن کامل

Generating Efficient Code for Lazy Functional Languages

In this paper we will discuss how a good code generator can be built for (lazy) functional languages. Starting from Concurrent Clean, an experimental lazy functional programming language, code is generated for an intermediate abstract machine: the ABC machine. In this rst pass many well-known optimisation techniques are included. However, we will also present some new ideas in this area, like t...

متن کامل

The GRIN Project: A Highly Optimising Back End for Lazy Functional Languages

Low level optimisations from conventional compiler technology often give very poor results when applied to code from lazy functional languages, mainly because of the completely diierent structure of the code, unknown control ow, etc. A novel approach to compiling laziness is needed. We describe a complete back end for lazy functional languages, which uses various interprocedural optimisations t...

متن کامل

Lazy Retirement: A Power Aware Register Management Mechanism

In this paper we describe "Lazy Retirement" a poweraware improvement to the Intel’s P6 family microarchitecture. Lazy Retirement significantly reduces the energy and power involved in register retirement. Lazy Retirement delays the copy from the physical register file (ROB) to the architectural (real) register file (RRF) until it has no choice and the physical register has to be re-used. In man...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995